1. Field of the Invention
The present invention relates generally to configuration management databases, and more particularly to allowing users with minimal database skills to produce efficient databases when extending configuration management databases.
2. Description of the Related Art
Configuration management is the detailed recording and updating of information regarding an organization's information technology services, such as computer systems and networks, including all hardware and software components. This configuration management information is stored in a configuration management database (CMDB), which internally retains a representation of other software and hardware systems, among other data. Configuration Management Databases have been proposed as part of the Information Technology Infrastructure Library (ITIL) guidelines for managing a network setup, and have been implemented in many areas. ITIL is a set of best practices standards for information technology (IT) service management.
With configuration management, IT components may be tracked and controlled. For example, if a user wants to upgrade a hardware component in the enterprise, the user may, via a configuration management application, submit a query to the CMDB and receive results identifying the components already installed in the system. From this detailed view provided to the user in the CMDB, the user may make an informed decision about the hardware upgrade needed for the system and the effects the change will have on other components and systems in the enterprise.
CMDBs currently provide an extensibility function which allows users to create their own class types and attributes. Although users may extend the functions of existing CMDBs, this process contains several drawbacks. For example, when a user creates a new class type or attribute, the user is required to have extensive knowledge of the database to ensure the table or column intended to store the new class type or attribute can correctly hold the data. If the user does not have extensive database skills, the extension of the CMDB by the user may not produce the most efficient running database with the best query and search performance and use of the minimum amount of table joins. Thus, with current CMDB extensibility, when a non-database savvy user manually creates the necessary tables, there is a learning curve for the user to understand the different database data types available for use in the tables, and a learning curve to understand the performance issues of each database data type. In addition, the non-database savvy user must calculate which arrangement of columns will produce the minimum number of tables for database efficiency.